import Vue from 'vue'
const interception = function (to, from, next) {
  // 是否需要获取权限
  if (Vue.prototype.$store.getters.getIsGetAuth) {
    nextRoute(to, next)
  } else {
    Vue.prototype.$store.dispatch({
      type: 'actUserMenuAndFun',
      routeTo: to
    }).then((res) => {
      if (res) {
        next({name: res})
      } else {
        next()
      }
    }).catch((res) => {
      next({name: res})
    })
  }
}
export default interception

function nextRoute (to, next) {
  // 是否需要先获取人员实名制项目列表
  if (to.meta.projectDefault) {
    // 是否已经获取人员实名制项目列表
    if (Vue.prototype.$store.getters.getPersonProjectDefault.pjId) {
      next()
      return
    }
  } else {
    next()
    return
  }
  // 是否需要先获取人员实名制项目列表
  if (to.meta.projectDefault) {
    getProjectList(to.meta).then(() => {
      next()
    })
  } else {
    next()
  }
}

function getProjectList () {
  return new Promise((resolve) => {
    Vue.prototype.$store.dispatch({
      type: 'actPersonProjectList'
    }).then(() => {
      resolve()
    })
  })
}

